A Radio Frequency Identification (RFID) system may consist of several components: RFID tags, tag readers, edge servers, middleware, and application software.
RFID tags typically contain Integrated Circuits (ICs) and antennas to enable them to receive and respond to radio-frequency queries from an RFID transceiver. Passive tags require no internal power source, whereas active tags use a power source.
The RFID tag can include a unique electronic product code (EPC). The RFID transceiver can emit a signal activating the RFID tag which then can reply with the EPC code.
The EPCs currently can have either a 64- or 96-bit code numbering scheme, but additional versions can be supported in the future. The EPC includes sections that indicate the product and manufacturer of a given item as well as a section to uniquely identify an object. Currently, an EPC number can contain:                A Header, identifying the length, type, structure, version and generation of EPC        The Manager Number, which identifies the company or company entity        Object Class, similar to a Stock Keeping Unit or (SKU)        
RFID readers can typically produce very large amounts of data. The RFID data can be filtered at an RFID edge server by applications using an Application-Level Events(ALE) interface. ALE allows applications to indicate what information it wants from the raw stream of RFID reads. Through ALE, an application can specify:                Which locations it wants to read from (where a location maps to one or more RFID readers or antennas)        What interval of time to accumulate data (absolute time, triggered by external events such as motion detectors, etc.)        How to filter the data (e.g., include only Acme products, exclude all item-level tags)        How to group the results (e.g., by company, by product or each tag separately)        Whether to report currently visible tags or just additions or deletions        And whether to report actual EPCs or just a count of the tags that are read.        